category: main
step: 4_graph
sub_step:
doc_status: ready
language: rus
main_number: "07"
macro graph
Name | Category | In Main Macro | Doc Status |
---|---|---|---|
calc_graph | auxiliary | graph | ready |
graph_lookup | sub_main | graph | ready |
graph_qid | sub_main | graph | ready |
graph_glue | sub_main | graph | ready |
graph_edge | sub_main | graph | ready |
graph_tuples | sub_main | graph | ready |
graph_unique | sub_main | graph | ready |
Макрос graph
предназначен для графовой склейки данных. Он реализуется в несколько шагов:
Имя dbt-модели (=имя файла в формате sql в папке models) должно соответствовать шаблону:
graph_{название_шага}
.
Например, graph_tuples
.
Внутри этого файла вызывается макрос:
{{ datacraft.graph() }}
Над вызовом макроса в файле будет указана зависимость данных через —depends_on
. То есть целиком содержимое файла выглядит, например, вот так:
-- depends_on: {{ ref('link_events') }}
{{ datacraft.graph() }}
Этот макрос принимает следующие аргументы:
params
(по умолчанию: none)override_target_model_name
(по умолчанию: none)limit0
(по умолчанию: none)Технически сам макрос graph
- регулировщик. Он направляет работу под-макросов типа graph_
по шагам.
Под-макросами являются:
Кроме них, есть ещё вспомогательный макрос calc_graph, который используется на шагах graph_glue
и graph_qid
.
Технически действие самого макроса graph
(регулировщика) реализуется так:
сначала макрос считает имя модели - либо из передаваемого аргумента (
override_target_model_name
), либо из имени файла (this.name
). При использовании аргумента override_target_model_name
макрос работает так, как если бы находился в модели с именем, равным значению override_target_model_name
.
Затем макрос вызывает нужный шаг макроса graph
в зависимости от считанного имени модели.
Файл в формате sql в папке models. Название файла graph_tuples
Содержимое файла:
-- depends_on: {{ ref('link_events') }}
{{ datacraft.graph() }}
Это седьмой из основных макросов.